Flink中的时间语义时间语义:EventTime:事件创建时间;IngestionTime:数据进入Flink的时间;ProcessingTime:执行操作算子的本地系统时间,与机器无关。不同的时间语义有不同的应用场合,我们往往更关系事件时间EventTime。数据生成的时候就会自动注入时间戳,EventTime可以从日志数据的时间戳timestamp)中提取。设置EventTime我们可以直接在代码中,对执行环境调用setStreamTimeCharacteristic方法,设置流的时间特性。具体的时间,还需要从数据中提取时间戳timestamp。valenv=StreamExecutio
背景为了维持flink的正常运行,对flink的日常监控就变得很重要,本文我们就来看一下flink中要监控的几个重要的指标重要的监控指标1.算子的处理速度的指标:numRecordsInPerSecond/numRecordsOutPerSecond,这有助于你了解到算子的是否正在合理运行2.应用的监控度:uptime表示应用已经持续运行的时间,numRestarts表示job被重启的次数,重启的原因很多种,比如内存占用过多被killed等3.检查点健康度:numberOfCompletedCheckpoints表示已经完成的检查点数目,numberOfFailedCheckpoints表示未
vscode其实有很多实用的技巧可以在日常工作中带来很大的提效,但可能是开发中没有相应的痛点场景,因此有些技巧接触的人不多本篇就来介绍下多光标的批量操作和模板代码两种技巧在日常工作中的提效涉及的vscode技巧不要看快捷键好像很多哈,主要是了解几种可以进入多光标批量操作模式的用法进入多光标之后的快捷键就是日常使用的选中、复制、粘贴了,只是以前是针对当前单个光标的操作,现在变成了针对多个光标的批量操作而已如何进入多光标的批量操作模式Ctrl+鼠标左键(手动添加多个光标)按住Ctrl键后,在哪里点击鼠标左键就会增加一个光标,在原本就有光标的位置点击鼠标左键,是取消当前这个光标Ctrl+D(自动在满
背景在flink的窗口函数运用中,window和windowAll方法总是会引起混淆,特别是结合上GlobalWindow的组合时,更是如此,本文就来梳理下他们的区别和常见用法window和windowAll的区别window是KeyStream数据流的方法,其并行度是任意的,也就是最大可以和分组key的数量相同windowAll是DataStream数据流的方法,其并行度只能是1,也就是所有的元素都会被聚合到一个算子任务上,性能极差GlobalWindows.create()是一个全局的窗口分配器,它的作用和TimeWindow或CountWindow一样,都是对元素进行窗口分配,不同点在于
前言:这里我列举了MyBatis和MyBatis-Plus常用的五种批量插入的方式,进行了详细的总结归纳,写的非常详细,整体思路清晰明了,只分享干货。目录一、准备工作二、MyBatis利用For循环批量插入三、MyBatis的手动批量提交四、MyBatis以集合方式批量新增(推荐)五、MyBatis-Plus提供的SaveBatch方法六、MyBatis-Plus提供的InsertBatchSomeColumn方法(推荐)七、总结一、准备工作1、导入pom.xml依赖mysqlmysql-connector-javaruntimeorg.mybatis.spring.bootmybatis-s
github开源项目flink-note的笔记。本博客的实现代码都写在项目的flink-state/src/main/java/state/keyed/KeyedStateDemo.java文件中。项目github地址:github1.flink键控状态flink键控状态是作用与flinkKeyedStream上的,也就是说需要将DataStream先进行keyby之后才能使用。键控状态会为每个key维护一份状态。flink支持五种键控状态,分别是:ValueState:维护一个值的状态,比方说我们要统计每个用户的购买次数,那么就先将流按照用户id进行keyby,然后维护一个类型为Intege
上一节我们分析到了Execution的生成,然后调用taskManagerGateway.submitTask方法提交task,提交的时候会将executionVertex封装成TaskDeploymentDescriptor,task的提交与执行涉及到了flink多个组件的配合,之前没有详细讲过,可能有的小伙伴有点不太清楚,这里我们花点时间介绍一下。1.Flink各个组件介绍1.JobManager在JobManager启动的时候会启动三个比较重要的组件:1.WebMonitorEndpoint:里面有大约六七十个handler,如果客户端使用finkrun的方式来提交一个job,最终会由W
本文的背景是:大学关系很好的老师问我能不能把Excel中1000个超链接网址对应的pdf文档下载下来。虽然可以手动一个一个点击下载,但是这样太费人力和时间了。我想起了之前的爬虫经验,给老师分析了一下可行性,就动手实践了。 没想到刚开始就遇到了困难,Excel中的超链接读到Python中直接显示成了中文。所以第一步就是把超链接对应的网址梳理出来,再用Python去爬取对应网址的pdf。第一步已经在上一篇文章中进行了详细说明,本文分享批量爬虫下载文件的第二步,详细代码介绍。文章目录一、读取数据二、模拟登录网址点击下载pdf的按钮三、写循环批量下载所有文件 一、读取数据 首先读取数据,代码如下
FlinkSQL和TableAPI实现消费kafka写入mysql1、构建table环境//创建flink流处理环境StreamExecutionEnvironmentenv=StreamExecutionEnvironment.getExecutionEnvironment();env.setParallelism(1);//table环境StreamTableEnvironmenttableEnv=StreamTableEnvironment.create(env);2、构建sourcekafka方式一:API//Kafka连接器Kafkakafka=newKafka() .
系列文章目录Flink1.17实战教程(第一篇:概念、部署、架构)Flink1.17实战教程(第二篇:DataStreamAPI)Flink1.17实战教程(第三篇:时间和窗口)Flink1.17实战教程(第四篇:处理函数)Flink1.17实战教程(第五篇:状态管理)Flink1.17实战教程(第六篇:容错机制)Flink1.17实战教程(第七篇:FlinkSQL)文章目录系列文章目录1.基本处理函数(ProcessFunction)1.1处理函数的功能和使用1.2ProcessFunction解析1.3处理函数的分类2.按键分区处理函数(KeyedProcessFunction)2.1定时